home *** CD-ROM | disk | FTP | other *** search
/ Attitude 10 / Attitude_10_2010-02-17_Oxyron.d64 / vector .src < prev   
Text File  |  2023-02-26  |  6KB  |  403 lines

  1. ;Hidden precalced vector.
  2.  
  3. p1x      = $40
  4. p1y      = $41
  5. p2x      = $42
  6. p2y      = $43
  7. p3x      = $44
  8. p3y      = $45
  9. p4x      = $46
  10. p4y      = $47
  11. p5x      = $48
  12. p5y      = $49
  13. p6x      = $4a
  14. p6y      = $4b
  15. p7x      = $4c
  16. p7y      = $4d
  17. p8x      = $4e
  18. p8y      = $4f
  19.  
  20. v1x      = $50
  21. v1y      = $51
  22. v2x      = $52
  23. v2y      = $53
  24.  
  25. t1       = $54
  26. n1       = $55
  27. t2       = $56
  28. n2       = $57
  29.  
  30. tmp      = $58
  31. sign     = $59
  32.  
  33.          *= $0a00
  34.  
  35.          sei
  36.          lda #$80
  37.          ldx #7
  38.          sta $07f8,x
  39.          dex
  40.          bpl *-4
  41. loop
  42.          lda #$ff
  43.          cmp $d012
  44.          bne *-3
  45.  
  46.          jsr calcvect
  47.          jsr hideface
  48.          jsr putspt
  49.  
  50.          jmp loop
  51.  
  52. calcvect
  53.          ldx #0
  54.          inc *-1
  55.          lda $5000,x
  56.          sta p1x
  57.          lda $5100,x
  58.          sta p1y
  59.          lda $5200,x
  60.          sta p2x
  61.          lda $5300,x
  62.          sta p2y
  63.          lda $5400,x
  64.          sta p3x
  65.          lda $5500,x
  66.          sta p3y
  67.          lda $5600,x
  68.          sta p4x
  69.          lda $5700,x
  70.          sta p4y
  71.          lda $5800,x
  72.          sta p5x
  73.          lda $5900,x
  74.          sta p5y
  75.          lda $5a00,x
  76.          sta p6x
  77.          lda $5b00,x
  78.          sta p6y
  79.          lda $5c00,x
  80.          sta p7x
  81.          lda $5d00,x
  82.          sta p7y
  83.          lda $5e00,x
  84.          sta p8x
  85.          lda $5f00,x
  86.          sta p8y
  87.          rts
  88.  
  89. putspt
  90.          ldx #7
  91.          lda #2
  92.          asl spt{CBM-@}mask
  93.          bcc *+4
  94.          lda #1
  95.          sta $d027,x
  96.          dex
  97.          bpl *-13
  98.          lda #$ff
  99.          sta $d015
  100.  
  101.          ldx #15
  102.          lda p1x,x
  103.          eor #$80
  104.          sta $d000,x
  105.          dex
  106.          bpl *-8
  107.          rts
  108.  
  109. spt{CBM-@}mask .byte 0
  110.  
  111. hideface
  112.          lda #%00000000
  113.          sta spt{CBM-@}mask
  114.  
  115.          ldx #p3x-p1x
  116.          ldy #p2x-p1x
  117.          lda #p1x-p1x
  118.          jsr hide
  119.          lda spt{CBM-@}mask
  120.          bcs *+4
  121.          ora #%00001111
  122.          sta spt{CBM-@}mask
  123.  
  124.          ldx #p8x-p1x
  125.          ldy #p3x-p1x
  126.          lda #p1x-p1x
  127.          jsr hide
  128.          lda spt{CBM-@}mask
  129.          bcs *+4
  130.          ora #%10100101
  131.          sta spt{CBM-@}mask
  132.  
  133.          ldx #p2x-p1x
  134.          ldy #p8x-p1x
  135.          lda #p1x-p1x
  136.          jsr hide
  137.          lda spt{CBM-@}mask
  138.          bcs *+4
  139.          ora #%11000011
  140.          sta spt{CBM-@}mask
  141.  
  142.          ldx #p6x-p1x
  143.          ldy #p7x-p1x
  144.          lda #p5x-p1x
  145.          jsr hide
  146.          lda spt{CBM-@}mask
  147.          bcs *+4
  148.          ora #%11110000
  149.          sta spt{CBM-@}mask
  150.  
  151.          ldx #p4x-p1x
  152.          ldy #p6x-p1x
  153.          lda #p5x-p1x
  154.          jsr hide
  155.          lda spt{CBM-@}mask
  156.          bcs *+4
  157.          ora #%00111100
  158.          sta spt{CBM-@}mask
  159.  
  160.          ldx #p7x-p1x
  161.          ldy #p4x-p1x
  162.          lda #p5x-p1x
  163.          jsr hide
  164.          lda spt{CBM-@}mask
  165.          bcs *+4
  166.          ora #%01011010
  167.          sta spt{CBM-@}mask
  168.  
  169.          rts
  170.  
  171. hide
  172.          pha
  173.          lda p1x,x
  174.          sta v1x
  175.          lda p1y,x
  176.          sta v1y
  177.          tya
  178.          tax
  179.          lda p1x,x
  180.          sta v2x
  181.          lda p1y,x
  182.          sta v2y
  183.          pla
  184.          tax
  185.          sec
  186.          lda v1x
  187.          sbc p1x,x
  188.          sta v1x
  189.          sec
  190.          lda v1y
  191.          sbc p1y,x
  192.          sta v1y
  193.          sec
  194.          lda v2x
  195.          sbc p1x,x
  196.          sta v2x
  197.          sec
  198.          lda v2y
  199.          sbc p1y,x
  200.          sta v2y
  201.  
  202.          clc
  203.          ldx #0
  204.          ldy #0
  205.          lda v1x
  206.          bne *+3
  207.          iny
  208.          bpl *+9
  209.          inx
  210.          eor #$ff
  211.          adc #1
  212.          sta v1x
  213.          lda v2y
  214.          bne *+3
  215.          iny
  216.          bpl *+9
  217.          inx
  218.          eor #$ff
  219.          adc #1
  220.          sta v2y
  221.          txa
  222.          and #1
  223.          sta tmp
  224.          ldx #0
  225.          lda v1y
  226.          bne *+3
  227.          iny
  228.          bpl *+9
  229.          inx
  230.          eor #$ff
  231.          adc #1
  232.          sta v1y
  233.          lda v2x
  234.          bne *+3
  235.          iny
  236.          bpl *+9
  237.          inx
  238.          eor #$ff
  239.          adc #1
  240.          sta v2x
  241.          cpy #0
  242.          bne h0
  243.          txa
  244.          and #1
  245.          cmp tmp
  246.          beq h1
  247.          cmp #1
  248.          bne *+4
  249.          clc
  250.          rts
  251.          sec
  252.          rts
  253.  
  254. h0
  255.          cpy #2
  256.          bcc h0{CBM-@}1
  257.          beq h0{CBM-@}2
  258.          sec
  259.          rts
  260.  
  261. h0{CBM-@}1
  262.          lda v1x
  263.          beq h0{CBM-@}11
  264.          lda v2y
  265.          beq h0{CBM-@}11
  266.  
  267.          lda tmp
  268.          bne *+4
  269.          clc
  270.          rts
  271.          sec
  272.          rts
  273. h0{CBM-@}11
  274.          txa
  275.          and #1
  276.          beq *+4
  277.          clc
  278.          rts
  279.          sec
  280.          rts
  281.  
  282. h0{CBM-@}2
  283.          lda v1y
  284.          ora v2x
  285.          beq h0{CBM-@}21
  286.          lda v1x
  287.          ora v2y
  288.          beq h0{CBM-@}22
  289.          sec
  290.          rts
  291. h0{CBM-@}21
  292.          lda tmp
  293.          bne *+4
  294.          clc
  295.          rts
  296.          sec
  297.          rts
  298. h0{CBM-@}22
  299.          txa
  300.          and #1
  301.          beq *+4
  302.          clc
  303.          rts
  304.          sec
  305.          rts
  306.  
  307. h1
  308.          sta sign
  309.  
  310.          ldx #0
  311.          ldy v1y
  312.          lda v1x
  313.          cmp v1y
  314.          bcs *+8
  315.          sta t1
  316.          sty n1
  317.          bcc *+7
  318.          sta n1
  319.          sty t1
  320.          inx
  321.          stx tmp
  322.          ldx #0
  323.          ldy v2y
  324.          lda v2x
  325.          cmp v2y
  326.          bcs *+8
  327.          sta t2
  328.          sty n2
  329.          bcc *+7
  330.          sta n2
  331.          sty t2
  332.          inx
  333.          txa
  334.          cmp tmp
  335.          beq h2
  336.          eor sign
  337.          cmp #0
  338.          bne *+4
  339.          clc
  340.          rts
  341.          sec
  342.          rts
  343. h2
  344.          eor sign
  345.          sta sign
  346.  
  347.          ldx #0
  348.          ldy #6
  349. h2{CBM-@}1
  350.          lda t1
  351.          asl a
  352.          cmp n1
  353.          bcc *+5
  354.          sbc n1
  355.          inx
  356.          sta t1
  357.          lda t2
  358.          asl a
  359.          cmp n2
  360.          bcc *+5
  361.          sbc n2
  362.          dex
  363.          sta t2
  364.          cpx #0
  365.          bne h2{CBM-@}2
  366.  
  367.          dey
  368.          bpl h2{CBM-@}1
  369.          sec
  370.          rts
  371. h2{CBM-@}2
  372.          bpl *+3
  373.          inx
  374.          txa
  375.          eor sign
  376.          cmp #1
  377.          bne *+4
  378.          clc
  379.          rts
  380.          sec
  381.          rts
  382.  
  383.  
  384.          *= $2000
  385.          .byte $60,$00,$00,$f0,$00,$00
  386.          .byte $f0,$00,$00,$60,$00,$00
  387.  
  388. rts
  389. h2{CBM-@}2
  390.          bpl *+3
  391.          inx
  392.          txa
  393.          eor sign
  394.          cmp #1
  395.          bne *+4
  396.          clc
  397.          rts
  398.          sec
  399.          rts
  400.  
  401.  
  402.          *= $2000
  403.          .byte $60,$